import Vue from 'vue';
import Vuex from 'vuex';
import router from '../router/index'

Vue.use(Vuex);
// 登录验证
export default new Vuex.Store({
    state: {
        user: false,
        //tags数组
        tags: [],
        //tagsview标签显示隐藏
        isCollapse: false
    },
    mutations: {
        // 登录
        login(state, user) {
            state.user = user;
            localStorage.setItem("userInfo", user);
        },
        // 退出
        logout(state, user) {
            state.user = "";
            localStorage.setItem("userInfo", "");
        },
        pushtags(state, val) {
            //如果等于-1说明tabs不存在那么插入，否则什么都不做
            //findindex找角标，循环判断一下，如果等于那么就代表有相同的，就不必添加，如果找不到那就是-1.就添加
            let result = state.tags.findIndex(item => item.menuname === val.menuname)
            result === -1 ? state.tags.push(val) : ''
        },
        closeTab(state, val) {//关闭标签
            //同上，找角标，然后用角标的位置对应删除一位。splice：这是数组的删除方法
            let result = state.tags.findIndex(item => item.menuname === val.menuname)
            state.tags.splice(result, 1)
            if (state.tags.length != 0) {
                router.push({ path: "/" + state.tags[result - 1].url })//关闭当前后，跳转到当前的前一位
            } else {
                router.push({ path: "/myIndex/indexEchart" })//跳转到首页

            }
        },
        cleartagsview(state, val) { //关闭所有tagsview标签
            //清空数组
            state.tags = []
            //跳转到首页,val接受传过来的当前路由
            if (val !== "/myIndex/indexEchart") {
                router.push({ path: "/myIndex/indexEchart" })
            }
        },
        changeisshow(state) {//改变tagsview显示隐藏
            state.isCollapse = !state.isCollapse
        }
    }
})